package mx.ipn.escom.redes.equipo.model;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "proceso")
public class Proceso {
	
	private Integer idProceso;
	
	private String nombre;
	
	private String descripcion; 
	
	private String idResponsable;
	
	private Empleado responsable;
	
	private List<Equipo> listEquipo;
	
	public Proceso(){}

	/**
	 * @return the idProceso
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "idProceso", nullable = false)
	public Integer getIdProceso() {
		return idProceso;
	}

	/**
	 * @param idProceso the idProceso to set
	 */
	public void setIdProceso(Integer idProceso) {
		this.idProceso = idProceso;
	}

	/**
	 * @return the nombre
	 */
	@Column(name = "nombre", nullable = false)
	public String getNombre() {
		return nombre;
	}

	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	/**
	 * @return the descripcion
	 */
	@Column(name = "descripcion", nullable = true)
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * @param descripcion the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	/**
	 * @return the idResponsable
	 */
	@Column(name = "idResponsable", nullable = false)
	public String getIdResponsable() {
		return idResponsable;
	}

	/**
	 * @param idResponsable the idResponsable to set
	 */
	public void setIdResponsable(String idResponsable) {
		this.idResponsable = idResponsable;
	}

	/**
	 * @return the responsable
	 */
	@OneToOne
	@JoinColumn(name = "idResponsable", referencedColumnName = "idEmpleado", insertable = false, updatable = false)
	public Empleado getResponsable() {
		return responsable;
	}

	/**
	 * @param responsable the responsable to set
	 */
	public void setResponsable(Empleado responsable) {
		this.responsable = responsable;
	}

	/**
	 * @return the listEquipo
	 */
	@ManyToMany(mappedBy = "listProceso")
	public List<Equipo> getListEquipo() {
		return listEquipo;
	}

	/**
	 * @param listEquipo the listEquipo to set
	 */
	public void setListEquipo(List<Equipo> listEquipo) {
		this.listEquipo = listEquipo;
	}
	
}
